import java.util.*;
/**
 * Implementierung der BusinessLayer Klasse Studiengang, implementiert das Interface BLCRUD für Create, Read, Update und Delete Operationen auf einer Aufzählung.
 * 
 * @author Kai Gutzeit
 * @version 13.12.2014
 */
public class BLStudiengang implements BL_CRUD<Studiengang>
{
    // Instanzvariable welche die Referenz der Geschäftsobjekte in einer Aufzählung beinhaltet.
    private List<Studiengang> studiengaenge;

    /**
     * Konstruktormethode welche die Referenz zu den vorhandene Studiengängen übergeben bekommt.
     * 
     * @param  iStudiengaenge Eine Referenz zur Aufzählung der verfügbaren Studiengänge.
     */
    public BLStudiengang(List<Studiengang> iStudiengaenge)
    {
        studiengaenge = iStudiengaenge;
    }

    /**
     * Implementierung der Create Methode aus dem Interface BL_CRUD
     * 
     * @param  iBusinessObject Übergibt die Referenz zu einem Studiengang, welche der Referenz der privaten Variable Studiengängen hinzugefügt wird.
     * 
     * @return Der erstellte Studiengang mit einer eindeutig erzeugten UUID als ID.
     * 
     * @exception IllegalArgumentException Die zu implementierende Methode kann eine IllegalArgumentException werfen in welcher Detail Information zum fehlschlagen der Operation enthalten sind.
     */
    public Studiengang Create(Studiengang iBusinessObject) throws IllegalArgumentException{
        return null;
    }
    
     /**
     * Die Read Methode erlaubt es anhand eines eindeutigen Schlüssel einen Studiengang aus der Aufzählung Studiengänge zu erhalten. 
     * 
     * @param  id  Es wird eine eindeutige id vom Typ UUID übergeben um den Studiengang eindeutig identifizierbar zu machen.
     * 
     * @return Das zu lesende Objekt vom Typ Studiengang.
     * 
     * @exception IllegalArgumentException Die zu implementierende Methode kann eine IllegalArgumentException werfen in welcher Detail Information zum fehlschlagen der Operation enthalten sind.
     */
    public Studiengang Read(UUID id) throws Exception{
        return null;
    }
    
     /**
     * Die Update Methode übermittelt ein komplettes Objekt vom Typ Studiengang und sorgt für das aktualisieren des jeweiligen Objektes in der privaten Aufzählung Studiengängen.
     * 
     * @param  iBusinessObject Es wird das zu aktualisierende Objekt vom Typ Studiengang übergeben.
     * 
     * @return Ein boolscher Wert für den Erfolg oder Nichterfolg der Update-Operation.
     * 
     * @exception IllegalArgumentException Die zu implementierende Methode kann eine IllegalArgumentException werfen in welcher Detail Information zum fehlschlagen der Operation enthalten sind.
     */
    public Boolean Update(Studiengang iBusinessObject) throws Exception{
        return null;
    }
    
     /**
     * Die Delete Methode bekommmt eine id als UUID Objekt übergeben, welches das Objekt vom Typ Studiengang aus einer Aufzählung eindeutig identifiziert und anschließend entfernt.
     * 
     * @param  UUID id Es wird eine eindeutige id vom Typ UUID übergeben.
     * 
     * @return Ein boolscher Wert für den Erfolg oder Nichterfolg der Delete-Operation.
     * 
     * @exception IllegalArgumentException Die zu implementierende Methode kann eine IllegalArgumentException werfen in welcher Detail Information zum fehlschlagen der Operation enthalten sind.
     */
    public Boolean Delete(UUID id) throws Exception{
        return null;
    }
}
